1. Field of the Invention
The present invention relates to initializing computer systems. More specifically, the present invention relates to a system that reduces the time required to detect and configure devices within a computer system during a computer system initialization operation by saving previously gathered system configuration information.
2. Related Art
As computer systems have grown increasingly more complicated, the amount of time spent detecting and initializing computer system components during the computer system initialization process has also increased. This has increased the amount of time a computer system user must wait before being able to use the computer system.
A computer system typically performs a number of functions to detect and configure devices within the computer system during the initialization process. For example, the computer system can detect and configure various bus devices within the computer system. The computer system can detect the size and speed of DIMMs (dual in-line memory modules) that are present in the system, and can use this information to program a memory controller. The computer system can read information regarding CPU speed from a processor, and can use this information to configure a clock frequency generator for the processor.
Components within a computer system rarely change between computer system initialization operations. This means the computer system repeats the same steps of detecting and initializing computer system components, even though the configuration rarely changes. Thus, much of the time spent detecting and initializing computer system components during the computer system initialization process is largely wasted.
What is needed is a computer system that does not waste time detecting and initializing computer system components during the computer system initialization process.
One embodiment of the present invention provides a method that reduces the time required to gather system configuration information during an initialization process within a computer system. The method operates by checking a chassis intrusion detection circuit within the computer system to determine whether a chassis of the computer system has been opened. If the chassis intrusion detection circuit indicates that the chassis has been opened, the method performs a normal initialization operation that gathers system configuration information by communicating directly with computer system components to determine a state of the computer system components. This system configuration information is stored in a nonvolatile storage device. If the chassis intrusion detection circuit indicates that the chassis has not been opened, the method performs an abbreviated initialization operation that retrieves the system configuration information from the nonvolatile storage device without having to communicate directly with the computer system components.
In one embodiment of the present invention, the method determines if the system configuration information has been saved previously in the nonvolatile storage device. If not, the method performs the normal initialization operation that gathers system configuration information by communicating directly with the computer system components, and saves the system configuration information in the nonvolatile storage device.
In one embodiment of the present invention, the method determines if the initialization process is taking place during a computer system power up. If not, the method performs the abbreviated initialization operation that retrieves the system configuration information from the nonvolatile storage device.
In one embodiment of the present invention, the method resets the chassis intrusion detection circuit after saving the system configuration information in the nonvolatile storage device, so that the chassis intrusion detection circuit indicates that the chassis has not been opened.
In one embodiment of the present invention gathering system configuration information further comprises setting configuration parameters for at least one of the computer system components.